package com.ljx.offer;

import org.junit.Test;

/**
 * @author 李捷禧
 * Date: 2023/4/1
 * ClassName: C_66
 */

public class C_66 {
    /**
     * 自己思路写出来的
     * 暴力法，运行时间是1ms
     * 还行
     * @param a
     * @return
     */
    public int[] constructArr(int[] a) {
        // TODO: 2023/4/1 思路
        int sum = 1;
        //count如果大于2，那么结果集就全是0
        //等于1，说明有一个0，所以只有索引为i值等于0，那个位置会有值，其他为0
        int count = 0;
        for (int i = 0; i < a.length; i++) {
            if(a[i] != 0) sum*=a[i];
            else {
                count++;
            }
        }
        int[] arr = new int[a.length];
        for (int i = 0; i < a.length; i++) {
            if(count > 1) {
                arr[i] = 0;
            }else if (count == 1){
                if(a[i] == 0) arr[i] = sum;
                else arr[i] = 0;
            }else {
                arr[i] = sum / a[i];
            }
        }
        return arr;
    }

    @Test
    public void test(){
        int[] arr = new int[]{1,2,0,4,5};
        int[] ints = constructArr(arr);
        for (int anInt : ints) {
            System.out.println(anInt);
        }


    }

}
